
var name = "yyccQQu"

//在字面量方式中，我们//之间包起来的所有的内容都是元字符,有的具有特殊意义
var reg = /^\d+"name"+\d+$/
console.log(reg.test("2018yyccQQu2019"), "reg");// false

// 对于字符串拼接的需求，我们只能使用实例创建的方式
var reg2 = new RegExp("^\\d+"+name+"\\d+","g"); // /d需要"/"转义
console.log(reg2.test("2018yyccQQu2019"), "reg2");// true


// 2、年龄介于 18～65之间

// /^[12-68]$/ -> 1、2-6、8 三个中的一个
// /^[\w-]$/   -> 数字、字母、下划线、-中的一个

// 18-19 20-59 60-65

var reg3 = /^(1[8-9]|[2-5]\d|6[0-5])?$/

console.log(reg3.test("788"), "reg3"); // false
console.log(reg3.test("18"),'reg3'); // true


//验证邮箱的正则
// - 第一部分：数字、字母、下划线、- 一到多位
// - 第二部分：@
// - 第三部分：数字、字母、 一到多位
// - 第四部分：(.两到四位) .com  .cn  .net .. .com.cn //.加上字母可以重复出现1-2次
var reg4 = /^[0-9a-zA-Z_-]{1,}@[0-9a-zA-Z]{1,}(\.[a-zA-Z]{2,4}){1,2}$/
// [0-9a-zA-Z_-]{1,}  @  [0-9a-zA-Z]{1,}  (\.[a-zA-Z]{2,4}){1,2}
console.log(reg4.test("643929860__--xyd@qq.com.cn"),'reg4') //true

// 年份范围
// 1890-2019  -> 1800-1899 1900-1999 2000-2019 00-19
// 考虑 0-9 1和0 的关系
// 正则就是平铺/或者/全局/单次
var reg6 = /^(((18|19)([0-9][0-9]))|(20)[0-1][0-9])$/;
console.log(reg6.test(2019),"reg6")

// 月份考虑大小月/平月/ 2月还跟是否是闰年28-29之间变化
// 1,3,5，7，8，10，12这七个月是31天 00-31 (01-19 20-29 30-31) 10-12
// 4，6，9，11这四个月是30天
// 2月闰年29天，一般年份28天
// 0131 02.. 03  01-09 10-12  00-31
// reg7没有验证2月
var reg7 = /^((0[13578])|10|12)((([0-1][1-9])|10)|(2[0-9])|(3[0-1]))|(((0[469])|11)(([0-1][1-9])|(2[0-9])|(30)))$/;
console.log(reg7.test("0331"),'reg7')
// https://blog.csdn.net/aking8736/article/details/2750066
//yyyy-MM-dd  最强验证日期的正则表达式,添加了闰年的验证
var reg8 = /^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/;
console.log(reg8.test("1973-02-29"),'reg8')

// 身份证号码
// 13 0828 1990 1204 06 1 7           
var reg5 = /^(\d{2})(\d{4})(\d{4})(\d{2})(\d{2})(?:\d{2})(\d)(?:\d|X)$/;






